package com.ktgj.train.common;

import com.ktgj.train.domain.GenerateOrder;
import com.ktgj.train.domain.InterfaceEntity.TrCancelChangeRequest;
import com.ktgj.train.domain.InterfaceEntity.TrCancelChangeResponse;
import com.ktgj.train.domain.InterfaceEntity.*;
import com.ktgj.train.domain.SeatPrice;
import com.ktgj.train.domain.trainlist.TrainList;
import com.ktgj.train.domain.vo.CustomerTrain;

import java.math.BigDecimal;

public interface TrainTickets {
    //余票查询
    TrRemainingTicketResponse queryByTrainTickets(TrRemainingTicketRequest request);

    //获取车次详情
    TrainList queryTrainSeat(QueryTrainSeatRequest request);

    //获取指定座位价格
    BigDecimal seatPrice(SeatPrice price);

    //订单提交（申请占座）(测试)
    TrOrderSubmissionResponse orderSubmission(TrOrderSubmissionRequest request);

    //订单提交（申请占座）
    TrOrderSubmissionResponse orderSubmissions(GenerateOrder request);

    //确认出票
    TrOutTicketResponse outTicket(TrOutTicketRequest request);

    //取消订单
    TrCancellationOrderResponse cancellationOrder(TrCancellationOrderRequest request);

    //订单信息查询
    TrOrderQueryResponse orderQuery(TrOrderQueryRequest request);

    //请求改签
    TrTicketChangesResponse trainRequestChange(TrTicketChangesRequest request);

    //获取支付链接给客人支付
    TrainPaymentResponse trainPayment(TrainPaymentRequest request);

    //支付状态同步
    TrPayStatusSynchResponse payStatusSynch(TrPayStatusSynchRequest request);

    //列车经停信息
    TrainTransitResponse trainTransit(TrainTransitRequest request);

    //12306账号验证（登录）
    RelationValidateResponse relationValidate(String token, RelationValidateRequest request);

    //取消改签
    TrCancelChangeResponse trainCancelChange(TrCancelChangeRequest request);

    //确认改签
    TrConfirmChangeResponse confirmChange(TrConfirmChangeRequest request);

    //线上退票申请
    TrRetreatTicketResponse retreatTicket(TrRetreatTicketRequest request);

    //改签线上退票申请
    TrRetreatTicketResponse retreatTickets(TrRetreatTicketRequest request);

    //查询常用联系人
    TrContactQueryResponse contactQuery(TrContactQueryRequest request);

    //增加和修改常用联系人（新版）
    TrAddAndUpdateContactsResponse addAndUpdateContacts(TrAddAndUpdateContactsRequest request);

    //删除常用联系人
    TrDeleteContactsResponse deleteContacts(TrDeleteContactsRequest request);

    //获取历史订单
    TrHistoryOrderResponse historyOrder(TrHistoryOrderRequest request);

    //账户余额查询
    TrQueryMoneyResponse queryMoney();

    //注册12306账号
    TrRegisterAccountResponse registerAccount(TrRegisterAccountRequest request);

    //短信验证
    TrPhoneMessageValidateResponse phoneMessageValidate(TrPhoneMessageValidateRequest request);

    //找回密码（获取验证码）
    TrRetrievePasswordResponse retrievePassword(TrRetrievePasswordRequest request);

    //找回密码（回填验证码）
    TrRetrievePasswordResponse sendcaptcharesult(TrRetrievePasswordRequest request);

    //重置密码（获取验证码）
    TrResetPasswordResponse resetPassword(TrResetPasswordRequest request);

    //重置密码（发送验证码）
    TrResetPasswordResponse resetPasswordSend(TrResetPasswordRequest request);

    //修改本人账号信息
    TrRetrievePasswordResponse modifyUserInfo(TrRetrievePasswordRequest request);

    //退票前置核验
    TrRetrievePasswordResponse refundPreCheck(TrRefundPreCheckRequest request);

    //乘客人核验结果查询接口(查询刷新核验状态)
    TrVerificationStatusResponse verificationStatus(TrVerificationStatusRequest request);
}
